home *** CD-ROM | disk | FTP | other *** search
- /////////////////////////////////////////////////
- // Huffman encoder header file huffenc.h
- // Copyright (c) 1991 Azarona Software
- // All rights reserved.
- /////////////////////////////////////////////////
-
- #ifndef H_HUFFENC
- #define H_HUFFENC
-
- #include <stdio.h>
- #include "pkmg.h"
-
- class huff_encoder {
- public:
- FILE *fin, *fout;
- unsigned *codes;
- char *code_lengths;
- char *leaf_depths;
- long *counts, *sorted_counts;
- unsigned char *smap;
- int num_symbols;
- int max_code_len;
- int currbyte, currbit;
- public:
- huff_encoder(int ns, int nl);
- virtual ~huff_encoder(void);
- int generate_codes(void);
- void reset_encoding(void);
- void encode_symbol(int sym);
- void flushbits(void);
- void encode(FILE *fo, FILE *fi);
- void dump_codes(FILE *f, long locn);
- static void print_bits(char nbits, unsigned code);
- void print_data(int show_sorted);
- };
-
- #endif
-
-